
CC=g++
CFLAGS=-Werror -Wall
LDFLAGS= -lpthread 
EXEC=Allium

all: $(EXEC)

Allium: main.o Reseau.o Client.o Message.o Serveur.o Fabricant.o Routeur.o Vegenere.o Annuaire.o
	$(CC) -o ./bin/Allium ./obj/Annuaire.o ./obj/Vegenere.o ./obj/main.o ./obj/Reseau.o ./obj/Client.o ./obj/Serveur.o ./obj/Routeur.o ./obj/Message.o ./obj/Fabricant.o $(LDFLAGS)

Client.o: client/Client.cpp client/Client.h Reseau.cpp Reseau.h
	$(CC) -o obj/Client.o -c client/Client.cpp $(CFLAGS)

Reseau.o: Reseau.cpp Reseau.h
	$(CC) -o obj/Reseau.o -c Reseau.cpp $(CFLAGS)

Vegenere.o: Vegenere.cpp Vegenere.h
	$(CC) -o obj/Vegenere.o -c Vegenere.cpp $(CFLAGS)

Annuaire.o: Annuaire.cpp Annuaire.h
	$(CC) -o obj/Annuaire.o -c Annuaire.cpp $(CFLAGS)

Message.o: Message.cpp Message.h Vegenere.h Vegenere.cpp
	$(CC) -o obj/Message.o -c Message.cpp $(CFLAGS)

Serveur.o: serveur/Serveur.cpp serveur/Serveur.h Reseau.cpp Reseau.h
	$(CC) -o obj/Serveur.o -c serveur/Serveur.cpp $(CFLAGS)

Fabricant.o : fabricant/Fabricant.cpp fabricant/Fabricant.h Message.cpp Message.h Vegenere.h Vegenere.cpp
	$(CC) -o obj/Fabricant.o -c fabricant/Fabricant.cpp

Routeur.o : routeur/Routeur.cpp routeur/Routeur.h serveur/Serveur.cpp Reseau.h  Vegenere.h Vegenere.cpp Reseau.cpp client/Client.h client/Client.cpp Message.cpp Message.h
	$(CC) -o obj/Routeur.o -c routeur/Routeur.cpp

main.o: main.cpp Message.cpp Reseau.cpp client/Client.cpp client/Client.h serveur/Serveur.cpp serveur/Serveur.h
	$(CC) -o ./obj/main.o -c main.cpp $(CFLAGS)

clean:
	rm -rf obj/*.o

veryclean : clean
	-rm ./bin/*

mrproper: clean
	rm -rf $(EXEC)
